home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dr. Windows 3
/
dr win3.zip
/
dr win3
/
NEW_TECH
/
NTUNZ2.ZIP
/
BUGS.LON
next >
Wrap
Text File
|
1994-01-23
|
18KB
|
388 lines
Bogus bugs (not our fault!):
---------------------------
By far THE BIGGEST source of bug reports to Info-ZIP/zip-bugs is the
incorrect transfer of zipfiles (or of the UnZip executable itself).
ALWAYS TRANSFER IN BINARY MODE! This includes ftp transfers and *both*
ends of a Kermit connection ("set file type binary"). If your copy
isn't exactly the same size as the original, you made a mistake.
Another common source of errors such as "compression method 8 not sup-
ported" is the existence of an old version of UnZip somewhere in your
path. Make sure you're using the version you think you're using; give
the full path explicitly if necessary. Executing "unzip" without any
options will print a help screen, at the top of which is the UnZip
version number and release date.
Bugs (real and/or imagined):
---------------------------
- DEC Ultrix: on long zipfiles, unzip will sometimes fail (bad CRC, not always
reproducible); this is apparently due either to a hardware bug (cache mem)
or OS bug (page faults?) [Igor, Jean-loup, bottom of BUGS.long]
- Pyramid: USE_FWRITE causes CRC errors (???) [Kevin]
- possible problems with unzip -a on binary file in compact-model-MSDOS-Zip-
created archive? (showed up with MSDOS zip 1.9l and various unzips; inflate
crashes(?)) [Piet]
- funzip/more/decryption/no-echo bug: race condition(?) causes terminal
to be "reset" to no-echo state
- directory dates/times (special Unix perms?) not restored
- Macintosh (100200), Atari (020000) external file attributes not interpreted
correctly (both unzip and zipinfo)
- pkbug error: zipfile with incorrect csize and/or ucsize--check for end of
compressed (csize) data in uncompression routines:
unimplod.c: while ((!zipeof) && ((outpos + outcnt) < ucsize)) {
unreduce.c: while (((outpos + outcnt) < ucsize) && (!zipeof)) {
[James Birdsall, Mark, bottom of BUGS.long]
- OS/2: directory EAs not restored if directory exists [Kai Uwe, KG27515@uark]
(subsequent note: no way to determine which EAs are newer ==> cannot
restore without user input)
- MS-DOS: Borland executables don't allow other than 80-column, 25/43/50-line
screen modes (Borland bug) [Michael Stillwell]
Features (possible and/or definite):
-----------------------------------
- put man pages in more "proper" nroff format
- ignore case for internal filename match on non-Unix systems, unless file-
specs enclosed in single quotes
- save/extract Unix mtime/ctime/atime/UID/GID info (Unix extra field)
- modify to decompress input stream if part of a pipe, but continue using
central directory if not (BIG job!)--extended local header capability
- add zipinfo option(s) to sort alphabetically, by date/time, in reverse, etc.
- add "near" to global vars [Steve Salisbury, 92.4.21]
- modify set_file_time routines to share common code (macro?)
- when listing filenames, use '?' for non-printables? [Thomas Wolff, 92.6.1]
- add zipinfo "in-depth" option? (check local vs. central filenames, etc.)
- create zipcat program to concatenate zipfiles
- assembly-language routines?
- VM/CMS version (Walter Moore, Phil Howard, Chua Kong Sian, others)
- add -oo option (overwrite and override)? no user queries (if bad password,
skip file; if disk full, take default action; if VMS special on non-VMS,
unpack anyway; etc.)
- add -Q[Q[Q]] option (quiet mode on comments, cautions, warnings and errors)?
forget -oo, or make synonym? Default level -Q?
- add OS/2 .INF format helpfiles for UnZip and ZipInfo?
Additional thoughts/reports/arguments/issues (many VMS):
-------------------------------------------------------
From: tp@mccall.com (Terry Poot)
Newsgroups: comp.os.vms
Subject: Re: Speeding up VAX C writes
Date: 22 Oct 91 11:48:59 GMT
In article <1991Oct21.130745.1018@lsl.co.uk>, paul@lsl.co.uk (Paul Hardy)
writes:
>Some months ago, I remember seeing an item here about how to speed up
>writes from VAX C, in the case where the data being written was binary.
Actually, the only trick I know about works no matter what the data is. I'm
talking here about the normal C stream_lf files. You can use other RMS file
types by specifying parameters to fopen, open, or creat, and they may be faster
or slower depending on what you are doing, and how you are doing it. However,
there is a way to speed up most I/O on stream files, in many cases
dramatically.
You want to add the argument "mbc=nnn" where nnn is the number of pages of
memory you can spare for I/O buffering. mbc is the RMS field name for the
Multi-Block Count. It tells the C rtl to use a buffer big enough to hold nnn
blocks (blocks are the same size as pages for a little while longer at least,
512 bytes). Thus rather than reading or writing a block at a time, you can have
it do it 200 blocks at a time, if you can spare 100Kb of memory, or any other
value. (I'm sure there's an upper limit, but I don't know what it is. In
practical terms, for most people it'll probably be PGFLQUO.)
BTW, note that I said the C rtl and not RMS. C I/O uses RMS block mode I/O,
which doesn't actually support mbc. It does, however, support whatever buffer
size you choose, as long as it is an integral number of blocks. The designers
of the RTL decided to check for mbc even on normal C stream files and allocate
the buffer size accordingly (Thanks, guys!). This is why specifying mbf, the
multi-buffer size, doesn't do anything. They didn't do multi-buffering, and RMS
doesn't support that either for block mode I/O. (Anyone wanna submit an
enhancement request SPR?)
These little tidbits of info are courtesy one of the C RTL developers, from
discussion after a session on C I/O at the DECUS symposium in Las Vegas.
------------------------------
From: techentin@Mayo.EDU (Bob Techentin)
Newsgroups: comp.os.vms
Subject: Re: Speeding up VAX C writes
Paul Hardy, <paul@lsl.co.uk> asked:
> Some months ago, I remember seeing an item here about how to speed up
> writes from VAX C, in the case where the data being written was binary.
>
> We now have an application which is using fopen, then fseek and fwrite,
> and is taking forever to do the writes. I'm sure that by putting the right
> magic words in the fopen, we can cut out a lot of the unneccessary work
> that the C RTL is doing on our behalf.
The VAX C RTL function fopen() creates files that are stream-lf by default.
This is not a natural kind of file for RMS, which prefers record oriented
structures. You can use some non-portable options in the fopen() command to
create record oriented files. The call:
fp = fopen(filename, access, "ctx=rec");
will force the RTL to use record access for read or write - even on a streamlf
file. This improves performance significantly. The call:
fp = fopen(filename, "w", "rfm=var", "rat=cr");
will create a variable length record/carriage return carriage control file
(instead of a stream-lf/no carriage control file), which is what your typical
text editor creates. Read and write performance to record structure files is
even better than just specifying record access.
You can use other options documented in the VAX C Run-Time Library Reference
Manual, creat() function. We set multibuffer counts, default extensions, and
read-ahead and write-behind buffering to improve our file performance.
Bob Techentin Internet: Techentin@Mayo.Edu
Mayo Foundation, Rochester MN, 55905 USA (507) 284-2702
------------------------------
Date: Sun, 12 May 91 11:30:40 PDT
From: madler@cobalt.cco.caltech.edu (Mark Adler)
James Birdsall cautions:
>> Warning! Do NOT trust PKUNZIP -t. I have a ZIP file which is badly
>> corrupted -- missing about 25K from the end. PKUNZIP -t claims it is OK.
Rather alarming. It is a problem, but it's not as bad as it sounds
initially.
I took a look at his zoo201.zip (which has the single entry zoo201.tar)
and here's what I found:
1. Unzip fails with a crc error.
2. PKUNZIP succeeds, but the resulting file is too short (444416
compared to the 532480 reported in the zip file).
3. If I PKZIP that 444416 byte file, I get exactly zoo201.zi